Generally, software testing comprises a methodology for investigating the performance of a software product in order to provide stakeholders with information about the quality, reliability, and performance of a software product or service. Additionally, software testing may provide an independent, objective analysis of the software in order to allow a business to appreciate the risks of widescale implementation of the software. Therefore, software testing not only forms an important part of the software lifecycle, but is also important for sales and marketing and other aspects of customer satisfaction. Software testing techniques may include executing a program or application with the intent of finding software errors or defects. The software can be verified to meet the requirements of a software design document and satisfy the needs of a customer.
Depending upon the software testing methodology used, software testing can be implemented at any time during the lifetime of the software product. In Enterprise Software Systems, many thousands of software applications may be operating concurrently. Automated testing of these software applications may be implemented in order to keep software applications available to customers and constantly maintain their performance.